/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ohyessoftware.sigc.infra.negocio;

import java.sql.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Diego
 * 01/06/2011
 */
@Entity
@Table(name = "cliente", schema = "sigc")
public class Cliente {

private static final long serialVersionUID = 1L;
    /**
     * Código do cliente.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "cod_cliente")
    private Long codCliente;

    //atributos
    /******************************************************************************/
    @Column(name = "nome")
    private String nome;

    @Column(name = "data_nascimento")
    private Date dataNascimento;

    @Column(name = "cpf")
    private int cpf;

    @Column(name = "cpf")
    private int rg;

    @Column(name = "email")
    private String email;
    
    @Column(name = "data_cadastro")
    private Date dataCadastro;

    @Column(name = "numero")
    private int numero;

    @Column(name = "complemento")
    private String complemento;

    //relacoes
    /******************************************************************************/
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cod_endereco", insertable = true, updatable = true)
    public Endereco endereco;

    @OneToMany(mappedBy = "cliente", fetch = FetchType.LAZY)
    private List<TelefoneCliente> telefoneClientes;

    @OneToMany(mappedBy = "cliente", fetch = FetchType.LAZY)
    private List<PedidoVenda> pedidoVendas;

    //get e set
    /******************************************************************************/
    public Long getCodCliente() {
        return codCliente;
    }

    public void setCodCliente(Long codCliente) {
        this.codCliente = codCliente;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }


    public int getCpf() {
        return cpf;
    }

    public void setCpf(int cpf) {
        this.cpf = cpf;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public Date getDataCadastro() {
        return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
        this.dataCadastro = dataCadastro;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public List<PedidoVenda> getPedidoVendas() {
        return pedidoVendas;
    }

    public void setPedidoVendas(List<PedidoVenda> pedidoVendas) {
        this.pedidoVendas = pedidoVendas;
    }

    public int getRg() {
        return rg;
    }

    public void setRg(int rg) {
        this.rg = rg;
    }

    public List<TelefoneCliente> getTelefoneClientes() {
        return telefoneClientes;
    }

    public void setTelefoneClientes(List<TelefoneCliente> telefoneClientes) {
        this.telefoneClientes = telefoneClientes;
    }

}
